home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / lantools / cron233 / manual.doc < prev    next >
Text File  |  1992-05-11  |  22KB  |  571 lines

  1.  
  2.                                 CronJr ver 2.36
  3.  
  4.  
  5.      
  6.      Requirements
  7.      ------------
  8.      
  9.           MS-DOS based machine running MS-DOS 3.30 or higher.   MS-DOS
  10.      versions below 3.30 may be used, but are not recommended, since
  11.      they require CronJr to use more memory.
  12.      
  13.      
  14.      Background
  15.      ----------
  16.      
  17.           The reason for designing CronJr was for lack of anything
  18.      better in the MS-DOS world.  Simple but powerful programs like
  19.      cron  (part of AT&T's Unix) or Sleeper  (public domain for HP's
  20.      MPE)  are non existent for PC's.
  21.      
  22.           With more and more companies moving from mini-computers to
  23.      PC based LANs, one of the many things that has been lost was the
  24.      ability to schedule the nightly reporting and maintenance
  25.      programs needed to keep a business working during the day.
  26.      
  27.           Sure, it's possible to just write a large batch file that
  28.      will run all your programs one after another.  That solution is
  29.      fine if it meets your needs.  But if you need programs to run at
  30.      specific times, and especially if your business revolves around
  31.      a LAN, then this product is for you.
  32.      
  33.      
  34.      The solution
  35.      ------------
  36.      
  37.           There are 3 methods of scheduler implementation in a DOS
  38.      environment.
  39.      
  40.           Method 1
  41.      
  42.               Make a background RAM resident program that will pop
  43.               up when it is time to run the tasks.
  44.      
  45.           Method 2
  46.  
  47.               Make a foreground program that loads the tasks as child
  48.               processes.
  49.      
  50.           Method 3
  51.      
  52.               Make a transient program that is only in memory when it
  53.               is needed.  Therefore, all memory is available for the
  54.               task. 
  55.      
  56.      
  57.                                        Page 1
  58.      Faults for method 1
  59.      --------------------
  60.      
  61.           The last thing the world needs is another RAM resident
  62.      program to eat up memory, steal clock cycles, and substitute
  63.      custom interrupt vectors.  Most LAN users already use 20-70k for
  64.      their network shell, and even more if they are running a NETBIOS
  65.      emulator.
  66.      
  67.           The way most resident schedulers work is to stuff the
  68.      keyboard when it is time to execute a task.  This method can be
  69.      seen in various automatic tape backup programs.  This method is
  70.      unreliable since the assumption is made that the DOS prompt is
  71.      available, the command line is clear, and the path is set.
  72.      
  73.      Faults for method 2
  74.      -------------------
  75.      
  76.           This method requires too much memory.  If you want to run a
  77.      batch file then you have to load another version of COMMAND.COM
  78.      on top of the parent scheduler.
  79.      
  80.      Why method 3 is so swell
  81.      ------------------------
  82.      
  83.           1. It is so simple.  It relies heavily on two simple
  84.              operating system level batch files.
  85.      
  86.           2. It is not RAM resident so it uses no memory(*).
  87.      
  88.           *  The dreaded asterisk - If you are using a DOS version
  89.              below 3.3 then around 23k is lost because COMMAND.COM
  90.              needs to be invoked a second time.  It is strongly
  91.              recommend that DOS 3.30 or above is used.
  92.      
  93.      
  94.      How it works
  95.      ------------
  96.      
  97.           1.  The schedule file CronJr.SCH is created by you. It
  98.      contains the timing parameters for the tasks to be executed.
  99.      
  100.           2. The master batch file, CronJr.BAT, is loaded from the
  101.      command line.  That is your last intervention.
  102.      
  103.           3. The work file, CronWk.BAT, is deleted by CronJr.BAT.
  104.      
  105.           4. The scheduler program, Cron.EXE, is loaded and the
  106.      schedule file CronJr.SCH is read.
  107.      
  108.           5. When the time comes to execute a process Cron.EXE dumps
  109.      its scheduling information to CronJr.JOB, writes the CronWk.BAT
  110.      file and unloads from memory to return control to CronJr.BAT.
  111.      
  112.      
  113.      
  114.                                        Page 2
  115.           6. If CronJr.BAT can find CronWk.BAT then the CronWk.BAT
  116.      work file is called/executed.
  117.      
  118.           7. Upon completion of CronWk.BAT, control is returned to
  119.      CronJr.BAT which then executes CronJr.BAT (thus ending the
  120.      original CronJr.BAT execution) with the parameter RELOAD which
  121.      is passed to Cron.EXE in step 4, which causes the file
  122.      CronJr.JOB to be loaded rather than the file CronJr.SCH .
  123.      
  124.      
  125.           Hard to follow?  Try this one.  It is the remedial version.
  126.      
  127.      CronJr.BAT -> Cron.EXE -> CronWk.BAT (YOUR TASK) ->CronJr.BAT
  128.           A.           B.            C.                     A.
  129.      
  130.  
  131.      Installation
  132.      ------------
  133.      
  134.           Create a directory for CronJr, any name will do, and copy
  135.      the Cron.EXE, EditCron.EXE and TimeNow.EXE programs into the new 
  136.      directory.  If you are going to use CronJr on a LAN with multiple 
  137.      machines running CronJr, then you must make a separate directory 
  138.      for each machine.
  139.      
  140.           Examples:
  141.      
  142.               C:\CRON\386
  143.               F:\BOB
  144.               F:\ACCTNG\CRON
  145.      
  146.           Each directory must contain its own CronJr.SCH file and its
  147.      own unique CronJr.BAT file.  A path may be set to point to the
  148.      location of Cron.EXE.
  149.      
  150.           To see a list of startup command line parameters type Cron
  151.      without any parameters and all possible parameters will be shown.
  152.      
  153.           For each CronJr directory created, type Cron START at their
  154.      respective DOS prompt.  Such as:
  155.      
  156.               C:\CRON\386>cron start
  157.      
  158.           This will create the CronJr.BAT file which is specific to
  159.      its home directory.  If you type out the CronJr.BAT file you will
  160.      see how this file is unique to its home directory.
  161.      
  162.           There are additional startup parameters such as DISABLE, NOSAVER
  163.      and LOG that can be used along with START.  The DISABLE parameter
  164.      will disable the F1-DOS Shell to provide additional network
  165.      security.  The NOSAVER parameter will turn off the screen saver
  166.      feature.  The LOG parameter will cause CronJr to make entries into 
  167.      the file called CronJr.LOG each time a job starts and stops.  The 
  168.      TimeNow.EXE program must be accessable for the log to be created.
  169.      
  170.      
  171.                                        Page 3
  172.           Use the EditCron program to create or modify the CronJr.SCH
  173.      file.  The EditCron utility is fairly straight forward to use.
  174.      The keystrokes used for operation are listed on a command line
  175.      on the bottom of the screen.  These keys <A>-Add , <D>-Delete,
  176.      <Enter>-Edit, <Esc>-Exit, page up/down and up/down arrow.
  177.      
  178.           The EditCron utility will help prevent easily made common
  179.      mistakes, such as illegal scheduling times, misspelling of
  180.      abbreviations for the days of the week, and most importantly of
  181.      all, invalid drives, directories and program names.
  182.      
  183.           After setting up the CronJr.SCH file, type CronJr to start 
  184.      the scheduler.
  185.      
  186.      
  187.      CronJr.SCH File Format
  188.      ----------------------
  189.      
  190.           In the event you choose to use your own text editor to 
  191.      modify the CronJr.SCH file, then make sure that it creates a flat
  192.      ASCII file without tabs.  Enter one task per line using the 
  193.      following format.
  194.      
  195.        Minute Hours Day_Of_Month Month Day_Of_Week Executable & Parms
  196.      
  197.        Example
  198.        -------
  199.      
  200.         50     16   *   *     MoTuWeThFr    f:\public\bin\killuser.EXE
  201.          0     17   *   *     MoTuWeThFr    f:\mtn_tape\databack.bat
  202.          0      5   *   *     Mo            g:\acctng\weekly.bat
  203.          0      1   1   *   SuMoTuWeThFrSa  G:\ACCTNG\MONTHEND.EXE
  204.          0      1   1   1   SuMoTuWeThFrSa  G:\ACCTNG\YEARLY.EXE
  205.         49     16   *   *     MoTuWeThFr    C:\FUNNY\GOHOME.EXE
  206.          2i     *   *   *     MoTuWeThFr    F:\stream\kevin.bat
  207.          0      1i  *   *     MoTuWeThFr    q:\hourly\bak2work.exe
  208.         15    9-16  *   *     MoTuWeThFr    c:\bin\chk_qtr.com
  209.         30     12   *   *         We        nopath.com
  210.          6     30   *   *   Su              u:\palitape\tna2tape.exe /a q /optic
  211.      
  212.      
  213.      Field definitions
  214.      -----------------
  215.      
  216.           Minute......: the minute of the hour you want your job
  217.                         to execute, 0 through 59.
  218.           Hours.......: the hour of the day in military time, 0
  219.                         through 23.  If you want to span hours, then
  220.                         you must separate hours with a dash "-"
  221.                         without any spaces between the hours and the
  222.                         dash.
  223.           Day_Of_Month: the day of the month 1 through 31.
  224.           Month.......: the month of the year 1 through 12.
  225.           Day_Of_Week.: the day of the week, SU MO TU WE TH FR SA.
  226.      
  227.      
  228.                                        Page 4
  229.           Executable..: a DOS executable string, .BAT, .EXE, and
  230.                         .COM files with a maximum combined path of
  231.                         64 characters.  EXTENSIONS MUST BE USED!
  232.           Parameters..: optional parameters to be passed to the
  233.                         executable.  Maximum of 128 characters.
  234.      
  235.      Wild cards and increments
  236.      -------------------------
  237.      
  238.           *: Execute on every occurrence.  Not used by Day_Of_Week.
  239.              Not recommended for use with Minute.
  240.      
  241.           i: Execute in increments. Only applies to minute and hour.
  242.              The 7th line in the example shows 2i which means execute
  243.              in 2 minute increments.  In theory this task could be
  244.              executed 30 times a hour.  Obviously  *  must be used for
  245.              every level after the first i .
  246.      
  247.           Combinations of  i  in the minute and hour are not allowed.
  248.      Combinations of  i  and spanned hours are not allowed.
  249.      
  250.           If  i  is used with the hour, then the minute should be  * ,
  251.      otherwise execution will occur in  X  hours + Y minutes increments.
  252.      
  253.      
  254.      Launch time
  255.      -----------
  256.  
  257.           Task checking and launching occur on the 1st second of the
  258.      minute or whenever the Enter key is pressed.
  259.      
  260.      
  261.      Screen Saver
  262.      ------------
  263.      
  264.           The screen saver becomes active after 15 seconds of keyboard
  265.      inactivity.  The screen saver will always redraw the CronJr
  266.      screen once the time of day second hits 50.  The CronJr screen
  267.      can be displayed by pressing any key, such as the space bar.
  268.      
  269.           The screen saver can be disabled by using the NOSAVER
  270.      command when creating the CronJr.BAT file with the START command.
  271.      
  272.      
  273.      Software Updates
  274.      ----------------
  275.      
  276.           Whenever you receive a CronJr update, always make a backup
  277.      of all the files used by your current version of CronJr.  Once
  278.      you have backed up your files, delete or rename your Cron.EXE
  279.      and CronJr.BAT files.  Then copy the Cron.EXE program from the
  280.      distribution disk to its target directory, then run Cron START,
  281.      and any other parameters you so desire, to create the
  282.      CronJr.BAT file .
  283.      
  284.      
  285.                                        Page 5
  286.      EXTREMELY IMPORTANT
  287.      -------------------
  288.      
  289.           Be very careful when assigning launch times.  A "feature"
  290.      of CronJr is that it only launches tasks when Cron.EXE is
  291.      resident.
  292.      
  293.           For example:  You have 2 tasks set to execute at 19:00,
  294.      each takes 20 minutes to run, and few tasks scheduled at 19:15.
  295.      At 19:00 all 19:00 tasks are tagged for launching and the first
  296.      task will be launched at 19:00.  The 2nd task will be launched
  297.      when Cron.EXE is reloaded and thus effectively launched at 19:20.
  298.  
  299.           Well it is now 19:40 and all tasks scheduled from 19:01
  300.      through 19:40 have missed their launch window.
  301.      
  302.           To prevent this from happening you should do the following.
  303.      Schedule enough time between tasks.  The 19:15 tasks in the
  304.      example should have been set later to 20:00, or earlier to
  305.      19:00.  Had they been scheduled at 19:00 then they would have
  306.      run as part of the 19:00 launching.
  307.      
  308.           NOTE:  Incremental launchings are exempt from this "feature" .
  309.      
  310.      
  311.      Proper scheduling
  312.      -----------------
  313.      
  314.           The best way to debug a faulty schedule is to run Cron.EXE
  315.      instead of CronJr.BAT, and use the F1 key to exit to DOS and
  316.      change the time.  Inspect the CronWk.BAT file that is created.
  317.      
  318.           There is no limit to the number of tasks you can put into
  319.      the CronJr.SCH file.
  320.      
  321.      
  322.      Common problems
  323.      ---------------
  324.           CronJr is running, and exits to DOS and does nothing.
  325.              Problem: Running Cron instead of CronJr.
  326.              Problem: Did not run Cron START in the execution directory.
  327.      
  328.           CronJr does not execute the programs listed in CronJr.SCH
  329.              Problem: Could not find the programs.  Need to specify the
  330.                       path in the CronJr.SCH file or set a DOS path.
  331.              Problem: You did not specify .BAT, .EXE, or .COM .
  332.              Problem: Your scheduling parameters are incorrect. Most
  333.                       likely day_of_the_week not included.  I.e. You
  334.                       are testing on Saturday a job you have set up
  335.                       to run Monday through Friday.
  336.      
  337.           CronJr plays this obnoxious fight song when it executes.
  338.              Problem: Running the evaluation version.
  339.      
  340.  
  341.      
  342.                                        Page 6
  343.      Licensing
  344.      ---------
  345.      
  346.           Every purchaser of CronJr is granted a site license.  One
  347.      purchased copy of CronJr may be used by anyone employed by your 
  348.      company in the same building with no additional charges.  Once 
  349.      you expand out of your building, you need to purchase another
  350.      copy.
  351.      
  352.      
  353.      Anomalies and Hints
  354.      -------------------
  355.      
  356.           There are two anomalies and one other point that you need 
  357.      to remember.
  358.      
  359.           Anomaly 1.  CronJr only executes tasks on the 1st second
  360.      of the minute.  Example.  If you had 3 tasks that each take 5
  361.      seconds to complete, and they are all scheduled to launch at
  362.      19:00 then they will be effectively launched at 19:00, 19:01
  363.      and 19:02.  This feature was designed into the product.
  364.      
  365.           Anomaly 2.  Anomaly 2 arises out of anomaly 1.  Example.
  366.      If you set up a schedule that has 3 jobs, each set to run in
  367.      increments of 10 minutes (10i * * * ...), you would assume that
  368.      they would execute at the 10, 20, 30, 40, 50, 00 minute clock
  369.      demarcations (assuming that the first launch minute was hh:00)
  370.      and always launch one after the other. In reality this is not
  371.      true.
  372.      
  373.           The first launching schedule would look like this.
  374.      
  375.              1a. Job #1 launches at the first available minute.
  376.      
  377.              2a. Job #2 launches at the first available minute
  378.                  after Job #1 completes.
  379.      
  380.              3a. Job #3 launches at first available minute after Job
  381.                  #2 completes.
  382.  
  383.           The second and subsequent launchings might look like this.
  384.      
  385.              1b. Job #1 launches 10 minutes after its's first
  386.                  launching or at the first available minute after
  387.                  Job #3 finishes or it may launch the first available
  388.                  minute after Job #1 if Job #1 takes more than 10
  389.                  minutes.
  390.      
  391.              2b. and 3b.  Who knows.
  392.      
  393.      
  394.      
  395.      
  396.      
  397.      
  398.      
  399.                                        Page 7
  400.           The best way to get around this confusion is to do one of
  401.      three things.
  402.      
  403.           1. Carefully plan and test your incremental launchings.
  404.      
  405.           2. Rather than make your launchings incremental, make them
  406.              minute specific.  This may involve multiple line entries
  407.              into the CronJr.SCH file for he same job at different
  408.              times.
  409.      
  410.           3. Make Jobs 1, 2 and 3 one job.
  411.      
  412.           The one thing you must remember.  The CronJr.SCH file is
  413.      only loaded at the initial load time.  If you are running CronJr
  414.      on a LAN and CronJr is running on a remote machine and you modify
  415.      the remote machine's CronJr.SCH file,  the remote CronJr will not
  416.      reflect any of the changes made in the new CronJr.SCH file until
  417.      the remote CronJr is aborted and reloaded.
  418.      
  419.      
  420.      Network Security
  421.      ----------------
  422.      
  423.           Although disabling the F1-DOS Shell feature does enhance the
  424.      security of the product, we do recommend that you take further
  425.      steps to secure your system if your environment so dictates.
  426.      
  427.           Many people use CronJr to backup their networks or route
  428.      their mail, or do other tasks that require Supervisor or
  429.      equivalent system access.  It would be quite simple for someone
  430.      to access the F1-DOS Shell and do what ever damage they want to
  431.      do.  It would also be simple for them to Escape out of the CronJr
  432.      program all together and get a DOS prompt.
  433.      
  434.           Our recommendations for enhanced network security are as
  435.      follows.
  436.      
  437.           1. If your system has a keyboard lock, use it and take the
  438.              keys with you!
  439.      
  440.           2. Lock the room that contains the CronJr machine.
  441.      
  442.           3. Don't set up your CronJr machine as a Super User unless
  443.              it is really needed.
  444.      
  445.           4. Disable the F1-DOS Shell feature.
  446.      
  447.           5. Modify the CronJr.BAT program to add a LOGOUT command
  448.              just prior to the display of the "ECHO End CronJr Cycle" .
  449.              This will ensure that once the Cron program is exited,
  450.              the CronJr.BAT file will log itself out of the network
  451.              prior to returning to a usable DOS prompt.
  452.      
  453.      
  454.      
  455.      
  456.                                        Page 8
  457.           6. In addition to modifying the CronJr.BAT file to enable
  458.              system logout, incorporate one of the Ctrl-C or
  459.              Ctrl-Break handler programs into your system.  This will
  460.              prevent possible crooks from getting access to a
  461.              "Terminate Batch Job" prompt prior to execution of the
  462.              LOGOUT command.  Do not rely on the SET BREAK OFF/ON
  463.              command to be of any help.  We have heard of a public
  464.              domain system driver available on CIS called BREAK.SYS .
  465.              The BREAK.SYS driver is supposed to prevent Ctrl-C or
  466.              Ctrl-Break from interrupting a batch file.  We have never
  467.              tried these drivers, but we have been informed of these
  468.              drivers by some of our customers.
  469.      
  470.      
  471.      Getting legal
  472.      -------------
  473.      
  474.           Software Shorts hereby disclaims all warranties relating to
  475.      this software, whether expressed or implied, including without
  476.      limitation any implied warranties of merchantability or fitness
  477.      for a particular purpose.
  478.      
  479.           Software Shorts will not be liable for any special,
  480.      incidental, consequential, indirect or similar damages due to
  481.      loss of data or any other reason, even if Software Shorts or an
  482.      agent of Software Shorts has been advised of the possibility of
  483.      such damages.
  484.      
  485.           Software Shorts will not be liable for any damages due to
  486.      malicious third party augmentation of the executable program,
  487.      such as viruses.
  488.      
  489.           In no event shall Software Shorts's liability for any
  490.      damages ever exceed the price paid for the license to use
  491.      software, regardless of the form of the claim.  The person using
  492.      the software bears all risk as to the quality and performance of
  493.      the software.
  494.      
  495.           The CronJr software is the copyrighted property of Software
  496.      Shorts.
  497.      
  498.      
  499.      Acknowledgements
  500.      ----------------
  501.      
  502.      Unix, cron and AT&T are registered trademarks of American
  503.         Telephone and Telegraph Corporation.
  504.      MPE and HP are copyrights of Hewlett Packard Company.
  505.      Sleeper is available through INTEREX
  506.      MS-DOS is a registered trademarks of Microsoft Corporation.
  507.      NetWare is a registered trademark of Novell Incorporated
  508.  
  509.           Software Shorts is not affiliated with any of the above
  510.      mentioned companies.
  511.      
  512.      
  513.                                        Page 9
  514.      Technical Support
  515.      -----------------
  516.      
  517.           Questions can be sent to CompuServe ID 70731,2507
  518.      
  519.      
  520.      One last word
  521.      -------------
  522.      
  523.           Software Shorts is dedicated to the creation and
  524.      dissemination of short, single focus, utility programs for
  525.      programmers.  Hence the name Software Shorts.  Software Shorts
  526.      utility programs may not be distributed by any individual or
  527.      corporation as part of a commercial software release, or bundled
  528.      with a turn key system unless the utility has been licensed to
  529.      that individual or corporation for such distribution.
  530.      
  531.           The first version of CronJr was released in November of 1988.
  532.      
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.      
  569.      
  570.                                        Page 10
  571.